<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js"></script>
</head>
<body>
    <div id="app">
       <a @click.prevent="cname='loginComponent'">去登录</a>
       <a @click.prevent="cname='registerComponent'">去注册</a>
       <a @click.prevent="cname='menuComponent'">去菜单</a>

       <!-- 
           component元素是Vue中定义好的一个元素 
           该元素的作用，等价于挖了一个坑，我们可以在这个坑中填组件！
           到底填什么组件，就有is属性决定，is属性后面写哪个组件的名字，在component这个位置显示什么组件
        -->
       <component :is="cname"></component>
    </div>    

    <template id="t1">
        <div>
            <h3>登录UI</h3>
        </div>
    </template>

    <template id="t2">
        <div>
            <h3>注册UI</h3>
        </div>
    </template>

    <template id="t3">
        <div>
            <h3>菜单UI</h3>
        </div>
    </template>

    <script>
        // 组件之间的切换。
        var app = new Vue({
            el: "#app",
            data: {
                cname: "loginComponent"
            },
            components: {
                "loginComponent": {
                    template: "#t1"
                },
                "registerComponent": {
                    template: "#t2"
                },
                "menuComponent": {
                    template: "#t3"
                }
            }
        });
    </script>
</body>
</html>